package com.hdl.service;

import java.sql.SQLException;
import java.util.Date;
import java.util.List;

import com.hdl.dto.OrderSearch;
import com.hdl.entity.MallOrder;
import com.hdl.exception.CodeException;
import com.hdl.vo.PageVO;

/**
 * MALLORDER表业务逻辑层接口
 * @author Administrator
 *
 */
public interface MallOrderService {
	
	/**
	 * saveOrder 往数据库里存放订单数据 订单详情数据
	 * @param order 订单对象
	 * @throws SQLException
	 */
	void saveOrder(MallOrder order)throws SQLException;
	
	/**
	 * 
	 * @param search
	 * @return
	 * @throws CodeException 650 订单总数查找失败
	 */
	long countBySearch(OrderSearch search)throws CodeException;
	
	/**
	 * 
	 * @param search
	 * @param current
	 * @param rowMax
	 * @return
	 * @throws CodeException 651 订单分页查询失败
	 */
	PageVO<MallOrder> selectSearch(OrderSearch search,Integer current, Integer rowMax)throws CodeException;
	
	/**
	 * 
	 * @param id
	 * @param status
	 * @return
	 * @throws CodeException 652 修改订单状态失败
	 */
	int updataStatus(String id,int status)throws CodeException;
	/*
	 * UpdateOrderStatus2 修改订单的状态为已支付 2 
	 * @param mallOrderId 需要修改的订单id
	 * @param payforTime 订单支付的时间
	 */
	void UpdateOrderStatus2(String mallOrderId,Date payforTime);

	
	/**
	 * findAllOrderByUserId 通过用户id 和 订单状态查询 订单记录
	 * @param hdlUserId 用户id
	 * @param orderStatus 订单状态
	 */
	List<MallOrder> findAllOrderByUserId(String hdlUserId,int orderStatus);

	/**
	 * selectById 通过订单id查询订单记录
	 * @param mallOrderId
	 * @return
	 */
	MallOrder selectById(String mallOrderId);

	/**
	 * update 修改订单状态
	 * @param mallOrderId 订单id
	 * @param i 状态值
	 */
	void update(String mallOrderId, int i);
	
	
	
}
